Method, system, and graphical user interface for meeting-spot-related introductions

ABSTRACT

One aspect of the invention involves a computer-implemented method in which a client device associated with a first user: receives from a server computer information about a plurality of other users associated with a meeting spot; displays an identifier for the meeting spot and at least some of the information for the plurality of other users; receives from the first user a selection of information that corresponds to a second user associated with the meeting spot; displays information about a third user, wherein the third user is associated with the first user and is also associated with the second user; receives from the first user a request to communicate with the third user; sends a communication to a client device associated with the third user; and participates in an online communication with the client device associated with the third user and a client device associated with the second user.

RELATED APPLICATIONS

This application is a continuation-in-part of U.S. patent applicationSer. No. 11/522,548, filed Sep. 13, 2006, entitled “Method, System, andGraphical User Interface for Meeting-Spot-Related Contact Lists,” which,in turn, is a continuation-in-part of U.S. patent application Ser. No.11/323,142, filed Dec. 30, 2005, entitled “Method, System, and GraphicalUser Interface for Meeting-Spot-Related Online Communications.” All ofthese applications are incorporated by reference herein in theirentirety.

This application is related to U.S. patent application Ser. No.11/323,090, filed Dec. 30, 2005, entitled “Method, System, and GraphicalUser Interface for Meeting-Spot Maps for Online Communications,” whichapplication is incorporated by reference herein in its entirety.

This application is related to U.S. patent application Ser. No.11/323,115, filed Dec. 30, 2005, entitled “Method, System, and GraphicalUser Interface for Identifying and Communicating with Meeting Spots,”which application is incorporated by reference herein in its entirety.

TECHNICAL FIELD

The disclosed embodiments relate generally to online communications.More particularly, the disclosed embodiments relate to methods, systems,and graphical user interfaces for meeting-spot-related onlinecommunications.

BACKGROUND

People increasingly use online communications to interact with theirfriends and to meet new people. As used herein, “online communications”means real-time online communications technologies, includingcharacter-based technologies (e.g., text-based instant messaging, butnot e-mail), audio technologies (e.g., audio chat and Voice overInternet Protocol (VoIP) telephony), and video technologies (e.g., videochat).

Numerous techniques have been developed that use online communicationsto improve our social lives, including social networking and onlinedating services. These techniques typically require a user to fill out apersonal profile, which can be cumbersome and also raises privacyconcerns. Thus, it would be highly desirable to find new, lesscumbersome, more intuitive, and more secure ways to use onlinecommunications to interact with friends and to meet new people.

SUMMARY

The present invention overcomes the limitations and disadvantagesdescribed above by providing methods, systems, and graphical userinterfaces (GUIs) for introductions via meeting-spot-related onlinecommunications. As used herein, a “meeting spot” is a specific physicallocation where two or more people could arrange to meet face to face.Exemplary meeting spots include, without limitation, a restaurant, bar,club, library, gym, bookstore, park, or store. Note that a meeting spotis limited in size so that two people can find (or can reasonably beexpected to find) each other at the spot. For example, Manhattan is toolarge to be a meeting spot, but the Four Seasons restaurant at 99 E.52nd St. in Manhattan could be a meeting spot.

One aspect of the invention involves a computer-implemented method inwhich a server computer: associates a first user with a meeting spot;identifies a plurality of other users that are also associated with themeeting spot; sends information about at least some of the plurality ofother users to a client device associated with the first user; receivesinformation that corresponds to a second user associated with themeeting spot from the client device associated with the first user;identifies a third user that is associated with the first user and isalso associated with the second user; and sends information about thethird user to the client device associated with the first user. Theclient device associated with the first user: displays at least some ofthe information about the third user; receives from the first user arequest to communicate with the third user; sends a communication to aclient device associated with the third user; and participates in anonline communication with the client device associated with the thirduser and a client device associated with the second user.

Another aspect of the invention involves a computer-implemented methodin which a server computer: associates a first user with a meeting spot;identifies a plurality of other users that are also associated with themeeting spot; and sends information about at least some of the pluralityof other users to a client device associated with the first user. Thesent information includes, for a respective other user, informationabout a respective third user that is associated with both therespective other user and the first user. The client device associatedwith the first user: receives from the first user a selection of asecond user in the plurality of other users; displays information abouta third user, wherein the third user is associated with the first userand is also associated with the second user; receives from the firstuser a request to communicate with the third user; sends a communicationto a client device associated with the third user; and participates inan online communication with the client device associated with the thirduser and a client device associated with the second user.

Another aspect of the invention involves a computer-implemented methodin which a client device associated with a first user: receives from aserver computer information about a plurality of other users associatedwith a meeting spot; displays an identifier for the meeting spot and atleast some of the information for the plurality of other usersassociated with the meeting spot; receives from the first user aselection of a second user in the plurality of other users; displaysinformation about a third user, wherein the third user is associatedwith the first user and is also associated with the second user;receives from the first user a request to communicate with the thirduser; sends a communication to a client device associated with the thirduser; and participates in an online communication with the client deviceassociated with the third user and a client device associated with thesecond user.

Another aspect of the invention involves a computer-implemented methodin which a client device associated with a third user: receives anautomatically generated online communication from a first user with arequest to introduce the first user to a second user. The third user isassociated with both the first user and the second user. The first userand the second user are both associated with a meeting spot. The methodalso initiates an online communication amongst the first user, thesecond user, and the third user.

Another aspect of the invention involves a graphical user interface on aclient device associated with a first user that includes: an identifierfor a meeting spot; information about a plurality of other users thatare associated with the meeting spot, including information about asecond user associated with the meeting spot; and information about athird user. The third user is associated with the first user and is alsoassociated with the second user. In response to receiving a selection ofthe second user from the first user, the information about the thirduser is displayed. In response to receiving from the first user arequest to communicate with the third user, a communication is sent to aclient device associated with the third user and the client deviceassociated with the first user participates in an online communicationwith the client device associated with the third user and a clientdevice associated with the second user.

Another aspect of the invention involves a server that includes one ormore processors, memory; and one or more programs. The one or moreprograms are stored in the memory and configured to be executed by theone or more processors. The programs include: instructions forassociating a first user with a meeting spot; instructions foridentifying a plurality of other users that are also associated with themeeting spot; and instructions for sending information about at leastsome of the plurality of other users to a client device associated withthe first user. The sent information includes, for a respective otheruser, information about a respective third user that is associated withboth the respective other user and the first user. The client deviceassociated with the first user: receives from the first user a selectionof a second user in the plurality of other users; displays informationabout a third user, wherein the third user is associated with the firstuser and is also associated with the second user; receives from thefirst user a request to communicate with the third user; sends acommunication to a client device associated with the third user; andparticipates in an online communication with the client deviceassociated with the third user and a client device associated with thesecond user.

Another aspect of the invention involves a client device associated witha first user that includes one or more processors, memory; and one ormore programs. The one or more programs are stored in the memory andconfigured to be executed by the one or more processors. The programsinclude: instructions for receiving from a server computer informationabout a plurality of other users associated with a meeting spot;instructions for displaying an identifier for the meeting spot and atleast some of the information for the plurality of other usersassociated with the meeting spot; instructions for receiving from thefirst user a selection of a second user in the plurality of other users;instructions for displaying information about a third user, wherein thethird user is associated with the first user and is also associated withthe second user; instructions for receiving from the first user arequest to communicate with the third user; instructions for sending acommunication to a client device associated with the third user; andinstructions for participating in an online communication with theclient device associated with the third user and a client deviceassociated with the second user.

Another aspect of the invention involves a client device associated witha third user that includes one or more processors, memory; and one ormore programs. The one or more programs are stored in the memory andconfigured to be executed by the one or more processors. The programsinclude instructions for receiving an automatically generated onlinecommunication from a first user with a request to introduce the firstuser to a second user. The third user is associated with both the firstuser and the second user. The first user and the second user are bothassociated with a meeting spot. The programs also include instructionsfor initiating an online communication amongst the first user, thesecond user, and the third user.

Another aspect of the invention involves a computer-program product thatincludes a computer readable storage medium and a computer programmechanism embedded therein. The computer program mechanism includesinstructions, which when executed by a server, cause the server to:associate a first user with a meeting spot; identify a plurality ofother users that are also associated with the meeting spot; and sendinformation about at least some of the plurality of other users to aclient device associated with the first user. The sent informationincludes, for a respective other user, information about a respectivethird user that is associated with both the respective other user andthe first user. The client device associated with the first user:receives from the first user a selection of a second user in theplurality of other users; displays information about a third user,wherein the third user is associated with the first user and is alsoassociated with the second user; receives from the first user a requestto communicate with the third user; sends a communication to a clientdevice associated with the third user; and participates in an onlinecommunication with the client device associated with the third user anda client device associated with the second user.

Another aspect of the invention involves a computer-program product thatincludes a computer readable storage medium and a computer programmechanism embedded therein. The computer program mechanism includesinstructions, which when executed by a client device associated with afirst user, cause the client device to: receive from a server computerinformation about a plurality of other users associated with a meetingspot; display an identifier for the meeting spot and at least some ofthe information for the plurality of other users associated with themeeting spot; receive from the first user a selection of a second userin the plurality of other users; display information about a third user,wherein the third user is associated with the first user and is alsoassociated with the second user; receive from the first user a requestto communicate with the third user; send a communication to a clientdevice associated with the third user; and participate in an onlinecommunication with the client device associated with the third user anda client device associated with the second user.

Another aspect of the invention involves a computer-program product thatincludes a computer readable storage medium and a computer programmechanism embedded therein. The computer program mechanism includesinstructions, which when executed by a client device associated with athird user, cause the client device to receive an automaticallygenerated online communication from a first user with a request tointroduce the first user to a second user. The third user is associatedwith both the first user and the second user. The first user and thesecond user are both associated with a meeting spot. The instructionsalso cause the client device to initiate an online communication amongstthe first user, the second user, and the third user.

Another aspect of the invention involves a server computer, comprising:means for associating a first user with a meeting spot; means foridentifying a plurality of other users that are also associated with themeeting spot; and means for sending information about at least some ofthe plurality of other users to a client device associated with thefirst user. The sent information includes, for a respective other user,information about a respective third user that is associated with boththe respective other user and the first user. The client deviceassociated with the first user: receives from the first user a selectionof a second user in the plurality of other users; displays informationabout a third user, wherein the third user is associated with the firstuser and is also associated with the second user; receives from thefirst user a request to communicate with the third user; sends acommunication to a client device associated with the third user; andparticipates in an online communication with the client deviceassociated with the third user and a client device associated with thesecond user.

Another aspect of the invention involves a client device associated witha first user, comprising: means for means for receiving from a servercomputer information about a plurality of other users associated with ameeting spot; means for displaying an identifier for the meeting spotand at least some of the information for the plurality of other usersassociated with the meeting spot; means for receiving from the firstuser a selection of a second user in the plurality of other users; meansfor displaying information about a third user, wherein the third user isassociated with the first user and is also associated with the seconduser; means for receiving from the first user a request to communicatewith the third user; means for sending a communication to a clientdevice associated with the third user; and means for participating in anonline communication with the client device associated with the thirduser and a client device associated with the second user.

Another aspect of the invention involves a client device associated witha third user, comprising means for receiving an automatically generatedonline communication from a first user with a request to introduce thefirst user to a second user. The third user is associated with both thefirst user and the second user. The first user and the second user areboth associated with a meeting spot. The client device associated withthe third user also comprises means for initiating an onlinecommunication amongst the first user, the second user, and the thirduser.

Thus, introductions via meeting-spot-related online communicationsprovide more intuitive, less invasive methods, systems, and GUIs tointeract with friends and to meet new people.

BRIEF DESCRIPTION OF THE DRAWINGS

For a better understanding of the aforementioned aspects of theinvention as well as additional aspects and embodiments thereof,reference should be made to the Description of Embodiments below, inconjunction with the following drawings in which like reference numeralsrefer to corresponding parts throughout the figures.

FIG. 1 is a block diagram illustrating an exemplary distributed computersystem in accordance with some embodiments.

FIG. 2 is a block diagram illustrating a meeting-spot-based networkingserver in accordance with some embodiments.

FIGS. 3A and 3B are block diagrams illustrating two exemplary clients.

FIG. 4 is a block diagram illustrating an exemplary meeting spotdatabase and an exemplary meeting spot record in accordance with someembodiments.

FIG. 5 is a block diagram illustrating an exemplary user database and anexemplary record for a particular user in accordance with someembodiments.

FIG. 6 is a flowchart representing a method of using maps of meetingspots to facilitate or initiate online communications in accordance withsome embodiments.

FIG. 7 is a schematic screen shot of an exemplary graphical userinterface of a map with user-selectable meeting spots in accordance withsome embodiments.

FIGS. 8A and 8B are flowcharts representing methods of using meetingspots selected by a computer user to facilitate online communicationswith other computer users in accordance with some embodiments.

FIG. 9 is a schematic screen shot of an exemplary graphical userinterface of a map with user-selectable meeting spots in accordance withsome embodiments.

FIG. 10 is a flowchart representing a method of identifying meetingspots and communicating with meeting spots in accordance with someembodiments.

FIG. 11 is a schematic screen shot of an exemplary graphical userinterface of a map with user-selectable meeting spots in accordance withsome embodiments.

FIG. 12 is a flowchart representing a method of generatingmeeting-spot-related contact lists in accordance with some embodiments.

FIGS. 13A-13C are schematic screen shots of exemplary graphical userinterfaces that include meeting-spot-related contact lists in accordancewith some embodiments.

FIG. 14 is a flowchart representing a method of generatingmeeting-spot-related contact lists in accordance with some embodiments.

FIG. 15 is a flowchart representing a method of generatingmeeting-spot-related contact lists in accordance with some embodiments.

FIG. 16 is a block diagram illustrating an exemplary a network ofmessaging servers in accordance with embodiments of the invention.

FIG. 17 is a block diagram illustrating a messaging server in accordancewith some embodiments.

FIGS. 18A-18C are block diagrams illustrating data structures residingin a messaging server in accordance with embodiments of the invention.

FIG. 19 is a flowchart representing a method of making an introductionvia meeting-spot-related online communications in accordance with someembodiments.

FIGS. 20A and 20B are schematic screen shots of exemplary graphical userinterfaces for clients associated with a first user and a third user,respectively, for making a meeting-spot-related introduction inaccordance with some embodiments.

FIG. 21 is a flowchart representing a method of making an introductionvia meeting-spot-related online communications in accordance with someembodiments.

FIG. 22 is a flowchart representing a method performed by a clientdevice associated with a third user of making an introduction viameeting-spot-related online communications in accordance with someembodiments.

DESCRIPTION OF EMBODIMENTS

Methods, systems, and graphical user interfaces for meeting-spot-relatedonline communications are described. Reference will be made to certainembodiments of the invention, examples of which are illustrated in theaccompanying drawings. While the invention will be described inconjunction with the embodiments, it will be understood that it is notintended to limit the invention to these particular embodiments alone.On the contrary, the invention is intended to cover alternatives,modifications and equivalents that are within the spirit and scope ofthe invention as defined by the appended claims.

Moreover, in the following description, numerous specific details areset forth to provide a thorough understanding of the present invention.However, it will be apparent to one of ordinary skill in the art thatthe invention may be practiced without these particular details. Inother instances, methods, procedures, components, and networks that arewell-known to those of ordinary skill in the art are not described indetail to avoid obscuring aspects of the present invention.

FIG. 1 is a block diagram illustrating an exemplary distributed computersystem 100 in accordance with some embodiments. FIG. 1 shows variousfunctional components that will be referred to in the detaileddiscussion that follows. This system includes client devices 104,meeting-spot-based networking server 102, a computer associated with ameeting spot 116, messaging server(s) 118, and communication network(s)106 for interconnecting these components.

Client 104 can be any of a number of devices (e.g., an internet kiosk,personal digital assistant, cell phone, gaming device, desktop computer,laptop computer, handheld computer, or a combination thereof) used toenable the activities described below. Client 104 typically includesaudio and/or video inputs 108 (e.g., a microphone and a video camera),audio output 110 (e.g., speakers or headphones), and video output 112(e.g., a display). Video output 112 displays a graphical user interface(GUI) 114.

The computer 116 associated with the meeting spot may be a computer usedto make reservations for the meeting spot or to provide other servicesassociated with the meeting spot. Computer 116 may optionally be used tohost chat rooms or other multi-user communications. The computer 116associated with the meeting spot may be located at the meeting spot, oranywhere else (e.g., at the facility of a computer services providerthat provides services for the meeting spot).

One or more messaging servers 118 provide online communications servicesto clients 104. The messaging servers 118 store information associatedwith the users of the service, user status information, and contactlists of users, further details of which are described below, inrelation to FIGS. 18A-18C. In some embodiments, the messaging servers118 store and relay online communications to and from clients 104. Insome other embodiments, the messaging servers 118 provide information tobe used by a client to directly connect to another client (e.g., usingpeer-to-peer connection methodologies). The messaging servers 118 andclients 104 may utilize any of a plurality of online communicationsprotocols, including but not limited to Internet Relay Chat (IRC),OSCAR, JABBER, etc. In some embodiments, the functions of messagingserver(s) 118 are incorporated in meeting-spot-based networking server102, e.g., as part of network communications module 212.

In some embodiments, the messaging servers 118 monitor and manage thestatus information of the users of one or more online communicationsservices (e.g., text messaging, audio chat, VoIP telephony, and/or videochat). Whenever a client application associated with a user of theonline communications service is not running on a client or is runningbut is otherwise not in communication with the messaging servers 118,the user is considered to be offline. If the client application isrunning and is in communication with the messaging servers 118, the useris considered to be online. Whenever a user goes from offline to online,the client application (e.g. text messaging module 314, audio module316, or video module 318) sends a message to the messaging servers 118announcing the change in status. The messaging servers 118 update thestatus information associated with the user to reflect the statuschange. The messaging servers 118 may forward the status of a user A toa client application associated with a user B who is interested in thestatus of user A. In some embodiments, the status of user A is forwardedto user B and other users by a broadcast or multicast message.

The status information monitored by the messaging servers 118 may befurther refined. One or more predefined statuses may be provided andserve as a default set of statuses. One or more status messages, whichare text strings that describe the status in further detail, may beassociated with the predefined statues. The client application may beset to any one of the predefined statuses by user intervention or as anautomatic response to particular events. The predefined statuses serveto indicate in greater detail the user's willingness and/or availabilityto exchange online communications with other users.

In some embodiments, the predefined user statuses may include “active,”“idle,” “busy,” “chatty,” and “offline.” “Active” means that the user isavailable to send and/or receive online communications. “Idle” (or“away”) means that the user has not been actively using the client forat least a specified amount of time, and by implication, is away fromthe client. “Busy” means that the user is preoccupied with other matters(e.g., actively using another client application) and is not availablefor sending and/or receiving online communications. “Chatty” means thatthe user is actively sending and/or receiving online communications andmay be willing to send and/or receive more. “Offline” means that theuser is offline, as described above. A user that is “active,” “idle,”“busy,” or “chatty” is also online because the client application isrunning and in communication with the messaging servers 118.

It should be appreciated that the statuses described above are merelyexemplary. Additional and/or alternative statuses may also be used.

In some embodiments, a user may also define custom statuses and/orcustom status messages. For example, a user may define a custom statusmessage saying that he or she is “on vacation.”

The messaging servers 118 may also store, for each user of the onlinecommunications service, a contact list (sometimes called a buddy list,address book, or the like). The contact list is a roster of one or morecontacts associated with the user. A contact is a person with whom theuser has previously communicated (by email, voice, IM, video chat, orthe like) or with whom the user may wish to choose to communicate (e.g.,other users associated with a meeting spot that has been entered and/ortagged by the user). The contact list associates contacts with one ormore communication addresses or locators (email address, IM address,phone number, and so on) as well as other information such as a name orprofile. A contact may or may not participate in the same IM network asthe user and therefore may or may not be reachable over IM. Furtherinformation regarding the contact list is described below.

FIG. 2 is a block diagram illustrating meeting-spot-based networkingserver 102 in accordance with some embodiments. Server 102 typicallyincludes one or more processing units (CPUs) 202, one or more network orother communications interfaces 204, memory 206, and one or morecommunication buses 208 for interconnecting these components. Server 102may optionally include a graphical user interface (not shown), whichtypically includes a display device, a keyboard, and a mouse or otherpointing device. Memory 206 may include high-speed random access memoryand may also include non-volatile memory, such as one or more magneticdisk storage devices, optical disk storage devices, flash memorydevices, or other non-volatile solid state storage devices. Memory 206may optionally include mass storage that is remotely located from CPUs202. Memory 206 may store the following programs, modules and datastructures, or a subset or superset thereof:

-   -   Operating System 210 that includes procedures for handling        various basic system services and for performing hardware        dependent tasks;    -   Network Communication Module (or instructions) 212 that is used        for connecting server 102 to other computers (e.g., clients 104)        via the one or more communications Network Interfaces 204 (wired        or wireless) and one or more communications networks 106 (FIG.        1), such as the Internet, other wide area networks, local area        networks, metropolitan area networks, and so on;    -   Mapping Engine 220 that receives meeting-spot-related requests        from and provides responses to clients 104, including requests        and responses for maps with meeting spots and/or contact lists        with meeting-spot-related information; and    -   Presentation module 248 that formats the results from mapping        engine 220 for display.

Network Communication Module 212 may include the following programs,modules and data structures, or a subset or superset thereof:

-   -   Text messaging module 214 that coordinates text messaging (e.g.,        instant messaging) between clients 104;    -   Audio module 216 that coordinates audio communications (e.g.,        voice chat or VoIP) between clients 104; and    -   Video module 218 that coordinates video communications (e.g.,        video chat) between clients 104.        In some embodiments, the text messaging, audio or voice        communications, and/or video communications between clients 104        are performed in a manner that does not require the use of        server 102, such as via peer-to-peer networking.

Mapping Engine 220 may include the following programs, modules and datastructures, or a subset or superset thereof:

-   -   Map database 224 that stores mapping data;    -   Meeting spot database 226 that stores records 228 for meeting        spots (e.g., records 228-1, 228-2 and 228-x for meeting spots 1,        2 and x, respectively); and    -   User database 238 that stores records 240 for users (e.g.,        records 240-1, 240-2, 240-7 for Users 1, 2 and y, respectively)

Each of the above identified modules and applications corresponds to aset of instructions for performing one or more functions describedabove. These modules (i.e., sets of instructions) need not beimplemented as separate software programs, procedures or modules, andthus various subsets of these modules may be combined or otherwisere-arranged in various embodiments. In some embodiments, memory 206 maystore a subset of the modules and data structures identified above.Furthermore, memory 206 may store additional modules and data structuresnot described above.

Although FIG. 2 shows server 102 as a number of discrete items, FIG. 2is intended more as a functional description of the various featureswhich may be present in server 102 rather than as a structural schematicof the embodiments described herein. In practice, and as recognized bythose of ordinary skill in the art, items shown separately could becombined and some items could be separated. For example, some itemsshown separately in FIG. 2 could be implemented on single servers andsingle items could be implemented by one or more servers. The actualnumber of servers in server 102 and how features are allocated amongthem will vary from one implementation to another, and may depend inpart on the amount of data traffic that the system must handle duringpeak usage periods as well as during average usage periods.

FIGS. 3A and 3B are block diagrams illustrating two exemplary clients104. As noted above, client 104 typically includes audio/video inputs108 (e.g., a microphone and a video camera), audio output 110 (e.g.,speakers or headphones), and video output 112 (e.g., a display). Videooutput 112 displays graphical user interface (GUI) 114. Client 104typically includes one or more processing units (CPUs) 302, one or morenetwork or other communications interfaces 304, memory 306, and one ormore communication buses 308 for interconnecting these components.Memory 306 may include high-speed random access memory and may alsoinclude non-volatile memory, such as one or more magnetic disk storagedevices, optical disk storage devices, flash memory devices, or othernon-volatile solid state storage devices. Memory 306 may store thefollowing programs, modules and data structures, or a subset or supersetthereof:

-   -   Operating System 310 that includes procedures for handling        various basic system services and for performing hardware        dependent tasks;    -   Network Communication Module (or instructions) 312 that is used        for connecting client 104 to other computers (e.g., server 102        and other clients 104) via the one or more communications        Network Interfaces 304 (wired or wireless) and one or more        communication networks 106 (FIG. 1), such as the Internet, other        wide area networks, local area networks, metropolitan area        networks, and so on;    -   Presentation Module 320, for formatting the maps, meeting spots,        and other data (e.g., user icons and text chat) for display in        GUI 114, which may include a browser application as well as        procedures or instructions embedded in web pages received from        the server 102;    -   Global Positioning System (GPS) Module (or instructions) 322 for        determining the location of client 104; and    -   Client Assistant 324, which handles data formatting and/or        management tasks, at least some of which could also be handled        by Mapping Engine 220.

Network Communication Module 312 may include the following programs,modules and data structures, or a subset or superset thereof:

-   -   Text messaging module 314 that supports text messaging (e.g.,        instant messaging) between clients 104;    -   Audio module 316 that supports audio communications (e.g., voice        chat or VoIP) between clients 104; and    -   Video module 318 that supports video communications (e.g., video        chat) between clients 104.

As illustrated schematically in FIG. 3B, client 104 can incorporatemodules, applications, and instructions for performing a variety ofmapping related processing tasks (e.g., map generator 326), at leastsome of which could be handled by Mapping Engine 220 in server 102instead. Alternatively, in some embodiments, client 104 can contain lessfunctionality than shown in FIG. 3A. For example, in some embodiments,client 104 need not have a GPS Module 322.

FIG. 4 is a block diagram illustrating an exemplary meeting spotdatabase 226 and an exemplary meeting spot record 228 in accordance withsome embodiments. Meeting Spot Database 226 stores meeting spot records228, for example meeting spot 1 (228-1) through meeting spot x (228-x),where x may represent the number of meeting spots.

A meeting spot record (e.g., meeting spot x 228-x) may include thefollowing data, or a subset or superset thereof:

-   -   Meeting spot ID 402 that uniquely identifies a particular        meeting spot (e.g., an n-bit binary number);    -   Geocode 404 that corresponds to the location of the meeting        spot;    -   Category(s) 406 that classify the meeting spot (e.g., dining,        exercising, partying, playing, shopping, or watching);    -   Street address 408 for the meeting spot;    -   Phone number 410 for the meeting spot;    -   URL 412 for a web page or site associated with the meeting spot;    -   Reviews 414 of the meeting spot by users and/or professional        reviewers, or the URL or a link to a web page or site that hosts        such reviews);    -   Pictures/videos 416 of the meeting spot, or the URL or a link to        a web page or site that hosts such reviews;    -   Users IDs of users that have selected the meeting spot 418;    -   Meeting spot IDs of other meeting spots 420 that are related to        the meeting spot associated with meeting spot ID 402 (e.g.,        other nearby meeting spots); and    -   Events 422 that includes dates and times for events occurring at        the meeting spot.

In some embodiments, events 422 permit a temporal component to be addedto meeting spots. In some embodiments, a user can tag, enter, orotherwise select particular past, present, or future events at meetingspots. Thus, a meeting-spot-based user interest profile 508 can alsoinclude particular events at meeting spots that the user has selected.User-selected events can change the similarity scores between thecomputer user and other computer users and, correspondingly, the displayof information concerning the other computer users. For example,information about other users 932 that have selected some of the sameevents as the user may be displayed more prominently (e.g., at higherdisplay positions in a list 960).

FIG. 5 is a block diagram illustrating an exemplary user database 238and an exemplary record 240-y for a particular user in accordance withsome embodiments. User Database 238 stores user records 240, for exampleUser 1 (240-1) through User y (240-y), where y may represent the numberof users.

A user record 240 (e.g., record 240-y for User y) may include thefollowing data, or a subset or superset thereof:

-   -   User ID 502 that uniquely identifies a particular user (e.g., an        n-bit binary number);    -   Entered meeting spots 504, e.g., meeting spot IDs that        correspond to meeting spots that the user has chosen to enter;    -   Tagged meeting spots 506, e.g., meeting spot IDs that correspond        to meeting spots that the user has chosen to tag (e.g., to tag        as a favorite meeting spot);    -   Interest profile 508 for the user that is based at least in part        on the meeting spots selected by the user (e.g., by entering        and/or tagging);    -   Contact information 510 for the user (e.g., online        communications address(es), and/or phone number(s) for the        user); alternately, this field 510 of the user record may        contain a link to the user's contact information; and    -   Contact list 512 for the user that contains the contact        information of other users known to the user; alternately, this        field 512 of the user record may contain a link to the user's        contact list (e.g., in messaging server 118).

As used herein, “entered meeting spots” are meeting spots in a GUI thata user has presently selected. For example, the user may be exploringmeeting spots that the user has not visited before (e.g., to see whichother users have also currently selected the corresponding meeting spotin their GUI). As used herein, “tagged meeting spots” are meeting spotsin a GUI that the user has tagged or otherwise labeled, independent ofwhether the user has currently selected (entered) the tagged meetingspot. By analogy to web browsing, a user may have currently selectedseveral web pages for viewing (e.g., via tabbed browsing or multiplewindows) and some of those web pages may have been bookmarked by theuser. In this analogy, entered meeting spots are analogous to currentlyselected web pages and tagged meeting spots are analogous to bookmarkedweb pages. Both entered meeting spots and tagged meeting spots can beused to determine a user's interest profile. In some embodiments, auser' interest profile is updated in real time as the user enters andleaves meeting spots and/or as the user tags and untags meeting spots.

FIG. 6 is a flowchart representing a method of using maps of meetingspots to facilitate or initiate online communications in accordance withsome embodiments. FIG. 6 shows processes performed by server 102 andclient 104. It will be appreciated by those of ordinary skill in the artthat one or more of the acts described may be performed by hardware,software, or a combination thereof, as may be embodied in one or morecomputing systems. In some embodiments, portions of the processesperformed by server 102 can be performed by client 104 using componentsanalogous to those shown for server 102 in FIG. 2.

Server 102 sends (602) a map to client 104 along with a plurality oficons for meeting spots that are to be overlaid on the map whendisplayed at the client. In some embodiments, the map and icons are sentusing a single data structure, while in other embodiments the map andthe icons are sent using distinct data structures—in which case the mapand icon images are merged during the display process. In someembodiments, the map and the plurality of meeting spot icons aregenerated by mapping engine 220 using data in mapping database 224 andmeeting spot database 226.

Client 104 receives (604) the map and the plurality of icons for meetingspots.

Client 104 displays (606) the map and the plurality of icons for meetingspots overlaid on the map in a GUI. In some embodiments, presentationmodule 320 (FIG. 3A) formats the received map and meeting spot icon datafor display.

FIG. 7 is a schematic screen shot of an exemplary graphical userinterface of a map with user-selectable meeting spots in accordance withsome embodiments. In some embodiments, GUI 700 includes map 702, meetingspots 710-722, and icons 708 (i.e., visual elements in the GUI) withinformation about other users 708. In some embodiments, GUI 700 includesan icon 706 with user information (e.g., the user's screen name foronline communications, and optionally an icon 704 representing theuser). The information about other users contained in icons 708 mayinclude, without limitation, the screen names for the other users andicons (e.g., thumbnails images or other icons analogous to the user'sicon 704) that represent the other users in online communications.

In some embodiments, selection of a meeting spot icon (e.g., icon 710)by a user at client device 104 initiates the display of informationabout other users (e.g., other user icons 708 in FIG. 7) that have alsoselected the same meeting spot icon, thereby facilitating onlinecommunications with one or more of the other users. In some embodiments,selection of a meeting spot icon is done by the user clicking cursor 728on the icon. In some embodiments, selection of a meeting spot icon isdone by the user hovering the cursor 728 over the icon, which results inthe display of more information 724 about the meeting spot and a link(e.g., ENTER link 726) that the user can activate to select thecorresponding meeting spot.

In some embodiments, the meeting spot icon is selected by the userclicking on a predefined region that includes the meeting spot (e.g.,clicking down and then up on a button while cursor 728 is over themeeting spot icon, or just clicking down on the button, or just clickingup on the button), placing (or hovering) cursor 728 over or near themeeting spot icon for a predetermined period of time (e.g., amouse-hover), or other activity indicating that the user expects toactivate a feature associated with the meeting spot icon. One ofordinary skill in the art would recognize various ways to identify auser-initiated activity as described above such as by recognizing aclick-down event and/or click-up event, or monitoring the movement ofthe cursor over a period of time. This could be done, for example, bythe client assistant 324 or operating system 310.

In some embodiments, selection of a meeting spot icon (e.g., icon 710)by a user at client device 104 initiates online communications (e.g., atext, audio, or video chat) with one or more other users that have alsoselected “the same meeting spot icon” (e.g., by selecting acorresponding meeting spot icon in a GUI on their respective clientdevices 104).

FIGS. 8A and 8B are flowcharts representing methods, performed by server102 and client 104, of using meeting spots selected by a computer userto facilitate online communications with other computer users inaccordance with some embodiments. It will be appreciated by those ofordinary skill in the art that one or more of the acts described may beperformed by hardware, software, or a combination thereof, as may beembodied in one or more computing systems. In some embodiments, portionsof the processes described here as being performed by server 102 can beperformed instead by client 104. FIGS. 8A and 8B are further describedbelow.

FIG. 9 is a schematic screen shot of an exemplary graphical userinterface 900 of a map with user-selectable meeting spots in accordancewith some embodiments. In some embodiments, GUI 900 includes thefollowing elements, or a subset or superset thereof:

-   -   Search input box 902 for entering location information or other        search query keywords;    -   Search initiation icon 904;    -   Meeting spots classifier icon 906 that, when clicked, allows a        user to remove a selected category filter 908 so that more        meeting spot icons are displayed;    -   Meeting spots categories filter 908 that lets a user choose the        types of meeting spots displayed;    -   “Enter all” link 910 that lets a user select all of the meeting        spots on the map 918;    -   “Leave all” link 912 that lets a user deselect all of the        meeting spots in the map 918;    -   User profile link 914 that lets a user see and edit his or her        profile 508;    -   User filter 916 that lets a user filter other users with whom        interaction is desired (e.g., interact only with other users in        the user's contact list 512; interact with anybody, including        strangers; or interact with other users whose profiles satisfy        one or more criteria (e.g., age range, gender, sexual        orientation, ethnicity, religion, languages spoken, body type,        height, eye color, hair color, marital status, education level,        employment situation, profession, income level, attitude towards        smoking and/or drinking, recent online activity, available        communication media, and/or preferred way of using communication        media (e.g., “always start with a 10-minute conversation over        instant messenger,” or “willing to go straight to video chat”));    -   Map 918, which shows a drawing, diagram, and/or picture (e.g., a        satellite photograph) of a geographic area;    -   Street view icon 920 for choosing a street view in map 918;    -   Satellite view icon 922 for choosing a satellite view in map        918;    -   Hybrid view icon 924 for choosing a hybrid view of both street        names and satellite images in map 918;    -   User icon 926 that displays information about the user (e.g., a        thumbnail image or other icon that represents the user in online        communications);    -   Pan controls 928 that move the area shown on map 918;    -   Zoom control 930 that changes the scale/magnification of map        918;    -   Icons 932 that display information (e.g., screen names and/or        thumbnail images) about other users that have also selected two        or more of the meeting spots selected by the computer user. (In        some embodiments, the icons for other users are displayed in a        list 960. In some embodiments, icons 932 display information        about other users that have also selected one or more of the        meeting spots selected by the computer user);    -   Meeting spot icons 934-948, which may have different types of        status indicators, such as: clear icons (936, 942, 944, and 948)        for meeting spots that the user has not entered or selected;        dark icons (934, 938, 946) for meeting spots that the user has        entered or selected; and starred icons (940, 946) for meeting        spots that the user has tagged as favorites. (Alternatively,        different colors can be used to represent different status, such        as green icons for entered meeting spots and red icons for not        entered meetings spots);    -   Box 950 that displays additional information about a meeting        spot (e.g., when cursor 962 hovers over or clicks on a meeting        spot icon (e.g., 948)) and/or permits additional user actions        with respect to the meeting spot, such as entering or selecting        the meeting spot by selecting link 952;    -   Location icon 956 that marks the location specified by the user        in search box 902; and    -   List of user's meeting spots 954 that can be a list of meeting        spots that the user has currently entered, a list of meeting        spots tagged by the user, a list of meeting spots that the user        has currently or recently visited in the physical world (e.g.,        as determined by GPS tracking of the user's cell phone or other        client 104).

As noted above, in some embodiments, the graphical user interface 900may contain a subset of the features or items shown in FIG. 9.Furthermore, in some embodiments, the graphical user interface 900 mayinclude other features or items not shown in FIG. 9.

Referring to FIGS. 8A and 8B, client 104 sends (802) locationinformation to server 102. In some embodiments, the location informationis specified by a user inputting the location information into client104 (e.g., by the user inputting the location information into searchbox 902 and activating search initiation icon 904). The locationinformation may concern the current location of the user, a potentialfuture location of the user, or any other location chosen by the user.In some embodiments, the location information is all or part of amailing address. In some embodiments, the location information is a zipcode. In some embodiments, the location information is the position ofclient 104, e.g., as determined by the client 104 using GPS module 322.In yet other embodiments, the client 104 sends an IP address of theclient to the server 104, which associates location information with theclient's IP address. In many cases, the IP address of the client issufficient to identify the city or zip code of the client 104, and insome cases the IP address of the client may be sufficient to identify aspecific building or set of buildings (e.g., a corporate or schoolcampus). In some embodiments, for safety and privacy, no informationabout the location of client 104 is sent to the server 102 without theknowledge and/or permission of the user. In such embodiments, the usercan prevent the server 102 (and other users) from knowing the user'sphysical location.

Server 102 receives (804) the location information sent by client 104.

Server 102 identifies (806) meeting spots that satisfy one or moreparameters. In some embodiments, the one or more parameters include aphysical distance, or an estimated driving time relative to the locationspecified by the location information. In some embodiments, the one ormore parameters include a type of meeting spot, such as a dininglocation, an exercising location, a partying location, a playinglocation, a shopping location, or a watching location. In someembodiments, the one or more parameters include a type of meeting spotand either a physical distance or an estimated driving time relative tothe location specified by the location information. In some embodiments,the one or more parameters are keywords in a search query. In someembodiments, at least some of the parameters are selected by the user atclient 104. For example, the user may select the type of meeting spotusing category filter 908.

Server 102 sends (808) and client 104 receives (810) data representingthe identified meeting spots. In some embodiments, the identifiedmeeting spots are displayed in a map in a GUI (e.g., meeting spots934-948 in map 918 in GUI 900). In some embodiments, the icons 934-948representing meeting spots are within a predetermined distance orestimated driving time from a location on the map specified by thecomputer user. In some embodiments, the map is a street map, a satellitephotograph, or a hybrid map showing street names superimposed on asatellite photograph.

Client 104 receives (812) user selections for a plurality of meetingspots. In some embodiments, the user selects the plurality of meetingspots using a map-based GUI (e.g., 900). In some embodiments, selectionof a meeting spot icon is accomplished by the user clicking cursor 960on the icon. In some embodiments, selection of a meeting spot icon isaccomplished by the user hovering cursor 960 over the icon, whichresults in the display of more information 950 about the meeting spotand a link (e.g., ENTER link 952) that the user can activate to selectthe corresponding meeting spot.

Client 104 sends (814) and server 102 receives (816) user-chosen meetingspot data that correspond to the plurality of meeting spots selected bythe user.

In some embodiments, server 102 creates (818) a meeting-spot-based userinterest profile for the user based at least in part on the plurality ofmeeting spots selected by the user. In some embodiments, themeeting-spot-based user interest profile for the user is created inreal-time, i.e., the profile is generated and updated as the userselects meeting spots. In some embodiments, the meeting-spot-based userinterest profile for the user is stored, e.g., in interest profile 508in user record 246. In some embodiments, interest profile 508 is a listof meeting spots selected by the user. In some embodiment, interestprofile 508 is a list of meeting spots selected by the user and one ormore attributes concerning the user (e.g., age, gender, sexualorientation, ethnicity, religion, languages spoken, body type, height,eye color, hair color, marital status, education level, employmentsituation, profession, income level, attitude towards smoking and/ordrinking, recent online activity, available communication media, and/orpreferred way of using communication media (e.g., “always start with a10-minute conversation over instant messenger,” or “willing to gostraight to video chat”).

In some embodiments, server 102 determines (820) similarity scoresbetween the user and other users that have also selected two or more ofthe meeting spots selected by the user, wherein the similarity scoresare based at least in part on the overlap in meeting-spot-based userinterest profiles for the user and for the other users. In someembodiments, server 102 determines similarity scores between the userand other users that have also selected one or more of the meeting spotsselected by the user. In some embodiments, the similarity score is thenumber of overlapping meeting spots that both users have presentlyentered. In some embodiments, the similarity score is the number ofoverlapping meeting spots that both users have presently entered dividedby the total number of meeting spots that both users have presentlyentered. In some embodiments, the similarity score is the number ofoverlapping meeting spots that both users have tagged. In someembodiments, the similarity score is the number of overlapping meetingspots that both users have tagged divided by the total number of meetingspots that both users have tagged. In some embodiments, the similarityscore is a combination of one of the preceding scores with a score basedon the overlap in attributes of the user and the other user (e.g., age,gender, sexual orientation, ethnicity, religion, languages spoken, bodytype, height, eye color, hair color, marital status, education level,employment situation, profession, income level, attitude towards smokingand/or drinking, recent online activity, available communication media,and/or preferred way of using communication media (e.g., “always startwith a 10-minute conversation over instant messenger,” or “willing to gostraight to video chat”).

Server 102 sends (822) and client 102 receives (824) and displays (826)information (e.g., icons 932) concerning at least some of the otherusers for display. In some embodiments, the display of the information932 concerning the other users depends at least in part on thesimilarity scores between the user and the other users. In someembodiments, users with higher similarity scores are displayed higher(i.e., at higher display positions) than users with lower similarityscores in a list 960 of other users. In some embodiments, the similarityscores of the other users and the order in which the other users 932 aredisplayed in list 960 changes in real time as the user changes themeeting spots that he or she has selected (e.g., by entering or leavingmeetings spots). In some embodiments, GUI icons associated with userswith higher similarity scores are displayed more prominently than GUIicons associated with users with lower similarity scores. In someembodiments, GUI icons differentiate users based at least in part on theusers' similarity scores.

In some embodiments, the information about other users is filtered(e.g., via user filter 916) so that only information about other userswith whom interaction is desired is displayed (e.g., interact only withother users in the user's contact list 512; interact with anybody,including strangers; or interact with other users whose profiles satisfyone or more criteria (e.g., age range, gender, sexual orientation,ethnicity, religion, languages spoken, body type, height, eye color,hair color, marital status, education level, employment situation,profession, income level, attitude towards smoking and/or drinking,recent online activity, available communication media, and/or preferredway of using communication media (e.g., “always start with a 10-minuteconversation over instant messenger,” or “willing to go straight tovideo chat”)). In such embodiments, the “in bound” information aboutother users is filtered.

Conversely, in some embodiments, a user can filter the “out bound”information concerning the user (e.g., via a filter analogous to userfilter 916), thereby enabling the user to control: (1) which other usersare permitted to view the user's information (e.g., show the user'sinformation only to other users in the user's contact list 512; show theuser's information to anybody, including strangers; or show the user'sinformation to other users whose profiles satisfy one or more criteria)and (2) what information about the user is communicated (e.g., theuser's screen name or other contact information 510, a thumbnail image,and/or one or more user attributes in user profile 508).

In some embodiments, a user can filter or control both the “out bound”information concerning the user and the “in bound” informationconcerning other users.

In some embodiments, client 104 receives (828) a request from the userto initiate an online discussion or communication with one of the otherusers. In some embodiments, selecting an icon 932 representing anothercomputer user initiates an online communication with the computer userrepresented by the selected icon 932. In some embodiments, the onlinecommunication includes instant messaging, voice communications (e.g.,using VoIP), and/or video chat. In some embodiments, the user mayrequest to initiate online communications with two or more of the otherusers, in effect requesting the formation of a multi-user chat room ormulti-user communication.

FIG. 10 is a flowchart representing a method of identifying meetingspots and communicating with meeting spots in accordance with someembodiments. FIG. 10 shows processes performed by server 102 and client104. It will be appreciated by those of ordinary skill in the art thatone or more of the acts described may be performed by hardware,software, or a combination thereof, as may be embodied in one or morecomputing systems. In some embodiments, portions of the processesdescribed here as being performed by server 102 can be performed insteadby client 104. FIG. 11 is a schematic screen shot of an exemplarygraphical user interface of a map with user-selectable meeting spots inaccordance with some embodiments.

Server 102 sends (1008) to a plurality of client devices associated withcomputer users in an online discussion information corresponding to: amap 1102, an icon for a meeting spot to be overlaid on the map 1104, aplurality of icons representing at least some of the computer users inthe online discussion (e.g., 1106, 1108-1, 1108-2, and 1108-3), and anicon 1110 to initiate online communications between a respective clientdevice and a computer associated with the meeting spot. In someembodiments, the icon for the meeting spot 1104 is also the icon toinitiate online communications 1110. The information corresponding tomap 1102 and the various icons may be sent using a single data structureor multiple data structures that are merged for display at the client104. In some embodiments, the information sent that corresponds to map1102 and the various icons contains all of the data needed to displaythe map 1102 and the various icons in GUI 1100 on client 104. In someembodiments, the information sent that corresponds to map 1102 and/orthe various icons include pointers to data stored in client 104. Thepointers in combination with the data stored in client 104 can be usedto display the map 1102 and the various icons in GUI 1100 on client 104.

Client 104 receives (1010) and displays (1012) the map 1102, the iconfor the meeting spot 1104, the plurality of icons representing computerusers (e.g., 1106, 1108-1, 1108-2, and 1108-3), and the icon 1110 toinitiate online communications with the meeting spot. In someembodiments, the map 1102, the icon for the meeting spot 1104, theplurality of icons representing computer users (e.g., 1106, 1108-1,1108-2, and 1108-3), and the icon 1110 to initiate online communicationswith the meeting spot are displayed in a single application window(e.g., a browser window). In some embodiments, the plurality of iconsrepresenting computer users (e.g., 1106, 1108-1, 1108-2, and 1108-3) arefully or partially overlaid on the map 1102.

Client 104 initiates (1014) online communications with the computerassociated with the meeting spot in response to the computer userselecting a corresponding icon (e.g., by the user clicking on icon 1110with cursor 1112).

In some embodiments, client 104 receives (1016) a consideration from anentity associated with the meeting spot. In some embodiments, theconsideration is a discount coupon, credit coupon, or membership card.In some embodiments, the entity associated with the meeting spot is thecomputer associated with the meeting spot.

In some embodiments, server 102 receives (1018) a request to initiateonline communications between the computer associated with the meetingspot and at least one client 104 in the online discussion.

In some embodiments, server 102 initiates (1020) online communicationsbetween the computer associated with the meeting spot and at least oneclient 104 in the online discussion.

In some embodiments, server 102 establishes (1022) a right to receive aconsideration from an entity associated with the meeting spot. In someembodiments, the consideration is a referral fee or a commission.Establishing a right to receive consideration may be accomplished, forexample, by posting an entry to an account that will reconciled orotherwise processed at a later time. In some embodiments, the entityassociated with the meeting spot is the computer associated with themeeting spot. In some embodiments, the server 102 receives theaforementioned consideration (i.e., participates in a funds transfer, inreal time) instead of establishing a right to receive that considerationat 1022.

FIG. 12 is a flowchart representing a process or method, performed byserver 102 and client 104, of generating meeting-spot-related contactlists in accordance with some embodiments. It will be appreciated bythose of ordinary skill in the art that one or more of the actsdescribed may be performed by hardware, software, or a combinationthereof, as may be embodied in one or more computing systems. In someembodiments, portions of the processes described here as being performedby server 102 can be performed instead by client 104 or by messagingserver(s) 118.

A first user is associated (1202) with a meeting spot. In someembodiments, the first user is associated with the meeting spot by areference to the meeting spot in a record for the first user. A meetingspot ID 402 that corresponds to the meeting spot may be included in thefirst user's record 240, e.g., in the first user's entered meeting spots504 and/or the first user's tagged meeting spots 506. In someembodiments, the reference to the meeting spot is added to the recordfor the first user when the first user activates an icon correspondingto the meeting spot. In some embodiments, the icon (e.g., 934-948)corresponding to the meeting spot is displayed on a digital map (e.g.,918).

The process identifies a plurality of users other than the first user(1204) who are also associated with the meeting spot. In someembodiments, the plurality of users are identified by respectiveidentifiers for the meeting spot 402 in respective records 240 for theplurality of users. For example, the meeting spot ID 402 may be includedin the respective records 240 for the plurality of users in the enteredmeeting spots 504 and/or the tagged meeting spots 506. In someembodiments, the plurality of users are identified via the user IDslisted in field 418 of the meeting spot record 228.

At least some of the identified users are selected (1206) based onpredefined criteria. In some embodiments, the predefined criteriainclude that the identified user is currently online. In someembodiments, the predefined criteria include that the identified user isactive. In some embodiments, the identified user must satisfy one ormore criteria (e.g., age range, gender, sexual orientation, ethnicity,religion, languages spoken, body type, height, eye color, hair color,marital status, education level, employment situation, profession,income level, attitude towards smoking and/or drinking, recent onlineactivity, available communication media, and/or preferred way of usingcommunication media (e.g., “always start with a 10-minute conversationover instant messenger,” or “willing to go straight to video chat”)).

User contact information that corresponds to the selected users is sent(1208) to a client device 104 associated with the first user forpresentation. In some embodiments, the user contact information is sentfor display in a list, e.g., other user information 932 in list 960. Insome embodiments, the user contact information is sent for display in acontact list 1302 of the first user.

A client device 104 may be permanently associated with the first user(e.g., by a telephone number or IP address) or the client device 104 maybe intermittently associated with the first user (e.g., by the userlogging in and out of a communications application (e.g., 314, 316, or318) on the client device 104).

The client device 104 associated with the first user receives (1210)from a server computer contact information for a plurality of usersassociated with a meeting spot. In some embodiments, as described above,the first user is also associated with the meeting spot.

The client device 104 associated with the first user displays (1212) anidentifier 1304 for the meeting spot and at least some of the contactinformation for the plurality of users associated with the meeting spot.In some embodiments, the identifier 1304 and the at least some contactinformation is displayed in a contact list 1302 of the first user.

FIGS. 13A-13C are schematic screen shots of exemplary graphical userinterfaces (GUIs) that include meeting-spot-related contact lists 1302in accordance with some embodiments.

In some embodiments, such GUIs include the following elements, or asubset or superset thereof:

-   -   First user information icon 926 that displays information about        the first user, such as contact information, that may be        displayed to other users' (e.g., in list 960 or contact list        1302)    -   Other user information icons 932 that display information, such        as screen names and other contact information, about other        users. (In some embodiments, the icons 932 for other users are        links that initiate online communications with the corresponding        other users);    -   Meeting spot identifier(s) 1304, such as a name or logo for a        meeting spot;    -   List(s) 1306 of contact information about other users 932 that        are associated with corresponding meeting spot(s);    -   Section(s) 1308 of contact list 1302 that, for a given meeting        spot, includes the list 1306 of contact information about other        users 932 that are associated with the meeting spot and a        section heading that includes the meeting spot identifier 1304;    -   Settings icon 1310 that links the user to user preferences;    -   Help icon 1312 that links to information for setting up,        maintaining, and using a contact list 1302;    -   First user message 1314 that shows a message that may appear in        other users' contact lists 1302 that include contact information        926 for the first user;    -   Search box 1315 for entering search terms to search for in the        user's contact list 1302;    -   Identifiers 1316 for other sections of contact list 1302 besides        meeting spot sections 1308, such as family 1316-1 and friends        1316-2;    -   Expand/collapse icons 1318 for expanding and collapsing sections        of contact list 1302 (e.g., in FIG. 13A, the sections        corresponding to 1318-1, 1318-3, and 1318-4 are collapsed and        the sections corresponding to 1318-2, and 1318-5 are expanded);    -   Online status icons 1320 that indicate (e.g., by icon shape,        color, and/or filling) the availability of the corresponding        user for online communications;    -   Add icon 1322 for adding new sections and/or users to the        contact list 1302;    -   View icon 1324 for selecting what and/or how information is        shown in list 1302 (e.g., show one page, sort by name, show        pictures, show offline friends, etc.);    -   Tab 1326 (FIGS. 13B, 13C) that activates, when selected, display        of portions of the contact list 1302 that are not concerned with        meeting spots;    -   Meeting spot tab 1328 (FIGS. 13B, 13C) that activates, when        selected, display of portions of the contact list 1302 that are        concerned with meeting spots (e.g., 1304, 1306, and/or 1308);    -   Online status icon 1330 that indicates (e.g., by icon shape,        color, and/or filling) whether any of the users in the portions        of the contact list 1302 corresponding to tab 1326 are available        for online communications;    -   Online status icon 1332 that indicates (e.g., by icon shape,        color, and/or filling) whether any of the users in the portions        of the contact list 1302 corresponding to tab 1328 are available        for online communications;    -   Filters icon 1334 that links to a screen that enables a user to        select what inbound and/or outbound filters are applied to the        display of other users information 932 in one or more meeting        spot sections 1308 in contact list 1302;    -   Map icon 1336 that links to a map (e.g., 918) that displays        meeting spots (e.g., at least some of the meeting spots        associated with the first user) and/or permits a user to add        meeting spots;    -   Search box 1338 for entering search terms to search for in        meeting spots associated with the first user, including other        user information associated with such meeting spots;    -   Messages from other users 1340 that are analogous to first user        message 1314;    -   Online status icon(s) 1342 that indicates (e.g., by icon shape,        color, and/or filling) whether any of the other users associated        with a given meeting spot are available for online        communications; and    -   First user message 1344 that shows a message that may appear in        other users' contact lists 1302 that include the same meeting        spot;

Note that first user message 1314 is a global message that may bedisplayed in other users' contact lists (e.g., “I′m back in town.”),whereas first user message 1344 is a message from the first user thatmay be displayed to other users of a particular meeting spot (e.g.,“I'll be at meeting spot 3 tonight at 8 PM”).

As noted above, in some embodiments, graphical user interfaces thatinclude meeting-spot-related contact lists 1302 may contain a subset ofthe features or items shown in FIGS. 13A-13C. Furthermore, in someembodiments, such graphical user interfaces may include other featuresor items not shown in FIGS. 13A-13C.

Graphical user interfaces (e.g., on client 104) include: a contact list1302 for a first user; in the contact list 1302, an identifier 1304 fora meeting spot; and a list 1306 of contact in formation for a pluralityof users that are associated with the meeting spot.

In some embodiments, identifier 1304 is a name or logo for the meetingspot.

In some embodiments, the contact list 1302 is divided into sections 1308and the list of contact information 1306 is included in a section havinga section heading comprising the identifier for the meeting spot 1304.In some embodiments, the list 1306 of contact information is adjacent tothe identifier 1304 for the meeting spot.

In some embodiments, the list 1306 of contact information includes linksfor the plurality of users. In some embodiments, activation of a linkfor a particular user initiates online communications with theparticular user.

In some embodiments, the meeting spot is associated with the first user,e.g., by a reference to the meeting spot in a record for the first user.A meeting spot ID 402 that corresponds to the meeting spot may beincluded in the first user's record 240, e.g., in the first user'sentered meeting spots 504 and/or the first user's tagged meeting spots506. In some embodiments, the reference to the meeting spot is added tothe record for the first user when the first user activates an icon(e.g., 934-948) corresponding to the meeting spot. In some embodiments,the icon corresponding to the meeting spot is displayed on a digital map(e.g., 918).

In some embodiments, the meeting spot is associated with the pluralityof users by respective identifiers for the meeting spot 402 inrespective records 240 for the plurality of users. For example, themeeting spot ID 402 may be included in the respective records 240 forthe plurality of users, in the entered meeting spots 504 and/or thetagged meeting spots 506. In some embodiments, the meeting spot isassociated with the plurality of users by respective user IDs for theplurality of users in field 418 of the meeting spot record 228.

FIG. 14 is a flowchart representing a method of generatingmeeting-spot-related contact lists in accordance with some embodiments.The method may be performed entirely by server 102; entirely by client104; or by server 102 in part, and by client 104 in part. Alternately,the method may be performed, at least in part, by messaging servers 118.It will be appreciated by those of ordinary skill in the art that one ormore of the acts described may be performed by hardware, software, or acombination thereof, as may be embodied in one or more computingsystems.

One or more meeting spots associated with a first user are identified(1402). In some embodiments, at least two meeting spots are identified.In some embodiments, the first user is associated with the meeting spotby a reference to the meeting spot in a record for the first user. Ameeting spot ID 402 that corresponds to the meeting spot may be includedin the first user's record 240, e.g., in the first user's enteredmeeting spots 504 and/or the first user's tagged meeting spots 506. Insome embodiments, the reference to the meeting spot is added to therecord for the first user when the first user activates an iconcorresponding to the meeting spot. In some embodiments, the icon (e.g.,934-948) corresponding to the meeting spot is displayed on a digital map(e.g., 918).

For at least some of the identified meeting spots, a plurality of otherusers associated with the meeting spot are identified (1404). In someembodiments, the plurality of users are identified by respectiveidentifiers for the meeting spot in respective records 240 for theplurality of users. For example, the meeting spot ID 402 may be includedin the respective records 240 for the plurality of users who have“entered” or tagged the corresponding meeting spot 228. In someembodiments, the plurality of users are identified via the user IDslisted in field 418 of the meeting spot record 228.

For at least some of the identified meeting spots, a subset of theidentified other users based on predefined criteria is selected (1406).In some embodiments, the predefined criteria include that the identifieduser is currently online. In some embodiments, the predefined criteriainclude that the identified user is active. In some embodiments, theidentified user must satisfy one or more criteria (e.g., age range,gender, sexual orientation, ethnicity, religion, languages spoken, bodytype, height, eye color, hair color, marital status, education level,employment situation, profession, income level, attitude towards smokingand/or drinking, recent online activity, available communication media,and/or preferred way of using communication media (e.g., “always startwith a 10-minute conversation over instant messenger,” or “willing to gostraight to video chat”)).

A list of user contact information that corresponds to the selectedsubset of users is generated (1408) for presentation in a display region(e.g., list 1306).

FIG. 15 is a flowchart representing a method of generatingmeeting-spot-related contact lists in accordance with some embodiments.In some embodiments, the method is performed by a client deviceassociated with the first user. In some embodiments, the method isperformed by a server computer remote from a client device associatedwith the first user. The method may be performed entirely by server 102;entirely by client 104; or by server 102 in part, and by client 104 inpart. Alternately, the method may be performed, at least in part, bymessaging servers 118. It will be appreciated by those of ordinary skillin the art that one or more of the acts described may be performed byhardware, software, or a combination thereof, as may be embodied in oneor more computing systems.

A contact list 1302 for a first user is generated (1502). The contactlist includes an identifier 1304 for a meeting spot and an adjacent list1306 of contact information for other users associated with the meetingspot.

In some embodiments, the first user is also associated with the meetingspot. In some embodiments, the first user is associated with the meetingspot by a reference to the meeting spot in a record for the first user.A meeting spot ID 402 that corresponds to the meeting spot may beincluded in the first user's record 240, e.g., in the first user'sentered meeting spots 504 and/or the first user's tagged meeting spots506. In some embodiments, the reference to the meeting spot is added tothe record for the first user when the first user activates an iconcorresponding to the meeting spot. In some embodiments, the icon (e.g.,934-948) corresponding to the meeting spot is displayed on a digital map(e.g., 918).

The use of messaging servers 118 to monitor and report the status ofusers is now described in more detail. FIG. 16 is a block diagramillustrating an exemplary a network of messaging servers in accordancewith embodiments of the invention. FIG. 16 illustrates an embodiment ofa logical coupling of the messaging servers to each other and to clientsfor monitoring and reporting the statuses of the users on the clients.The network 106 includes messaging servers 118-A, 118-B, and 118-C. Thenetwork 106 may include more or fewer messaging servers than what isshown in FIG. 16. Each messaging server is assigned a set of one or moreusers. Messaging server 118-A is assigned users 1604-A. Messaging server118-B is assigned users 1604-B. Messaging server 118-C is assigned users1604-C. Each messaging server includes a status monitor and a statuscollector. Thus, messaging server 118-A includes a status monitor 1606-Aand a status collector 1608-A. Messaging server 118-B includes a statusmonitor 1606-B and a status collector 1608-B. Messaging server 118-Cincludes a status monitor 1606-C and a status collector 1608-C. In someother embodiments, each of the messaging servers has one status monitorand one status collector per user that is assigned to the respectivemessaging server.

Whenever a user goes from offline to online (e.g., by logging in at anonline communication application), the client application (e.g. textmessaging module 314, audio module 316, or video module 318) sends amessage to the network 106 announcing that it is online. In someembodiments, this message is routed to the messaging server assigned tothe user, and the other messaging servers will not receive this messagedirectly because it came from a user not assigned to them. The statusmonitor 1606 at the messaging server to which the user is assignedreceives the message and changes the status of that user to “online” (or“active,” “busy,” or whatever status is appropriate). Furthermore, thestatus collector 1608 at the messaging server gathers the statuses ofthe contacts in that user's contact list. While some of the contacts inthe user's contact list may be assigned to the same messaging server,other contacts in the user's contact list are assigned to othermessaging servers. The status collector 1608 of the messaging server 118assigned to the user gathers the statuses of the user's contacts,including those assigned to other messaging servers, and forwards atleast a portion of the collected status information to the user. In someembodiments, the status collector 1608 broadcasts requests for statusinformation of the contacts to the network and the messaging servers 118to which the contacts are assigned respond to the requests. In someother embodiments, the status collector 1608 determines the messagingservers 118 to which the contacts are assigned and sends requests forstatus information to those messaging servers. In some embodiments, thecontact assignments may be determined by reference to an index of allusers, a copy of which may be stored in all of the messaging servers ora subset thereof, and their messaging server assignments.

For example, if a user A1 of users 1604-A, assigned to messaging server118-A, goes from offline to online, the client application associatedwith the user A1 sends a message to the network 106 announcing that userA1 is online. The status monitor 1606-A at the messaging server 118-Areceives the message (the other messaging servers 118-B and 118-C willnot receive it) and updates the status of the user A1 to online. Thestatus collector 1608-A at the messaging server 118-A obtains a list ofthe contacts in the user A1's contact list, for instance by accessinguser A1's contact list. Using that list of contacts, the statuscollector 1608-A gathers status information from the messaging serversto which the contacts are assigned. Thus, if a contact is assigned tomessaging server 118-A, then the status collector 1608-A accesses thecontact's status information stored at messaging server 118-A. If thecontact is assigned to messaging server 118-B, then it communicates withmessaging server 118-B to get the status information. A similarprocedure occurs if the contact is assigned to messaging server 118-C.

After user A1's online status changes (e.g., from online to offline, orvice versa), the messaging servers other than the one assigned to userA1 receive a status update for user A1 whenever their respective statuscollectors request the status of user A1. More specifically, if thereare other users, assigned to other messaging servers, who subscribe tothe online presence of user A1 and are currently online, then the statuscollectors of their assigned messaging servers will periodically requeststatus updates for user A1.

FIG. 17 is a block diagram illustrating a messaging server, according tosome embodiments of the invention. The messaging server 118 typicallyincludes one or more processing units (CPU's) 1702, one or more networkor other communications interfaces 1706, memory 1704, and one or morecommunication buses 1708 for interconnecting these components. Themessaging server 118 optionally may include a user interface (notshown), which may include a display device, a keyboard, and/or a mouse.Memory 1704 includes high-speed random access memory, such as DRAM,SRAM, DDR RAM or other random access solid state memory devices; and mayinclude non-volatile memory, such as one or more magnetic disk storagedevices, optical disk storage devices, flash memory devices, or othernon-volatile solid state storage devices. Memory 1704 may optionallyinclude one or more storage devices remotely located from the CPU(s)1702. In some embodiments, memory 1704 stores the following programs,modules and data structures, or a subset or superset thereof:

-   -   Operating System 1712 that includes procedures for handling        various basic system services and for performing hardware        dependent tasks;    -   Network Communication Module (or instructions) 1714 that is used        for connecting the messaging server 118 to other computers        (e.g., clients 104) via the one or more communication network        interfaces 1706 (wired or wireless) to one or more communication        networks, such as the Internet, other wide area networks, local        area networks, metropolitan area networks, and so on;    -   an optional List Generator 1716 for generating lists of        contacts;    -   one or more online communications applications 1726, such as        text messaging, audio chat, VoIP telephony, and/or video chat;        and    -   a Contact Status Manager 1734 for managing statuses of users.

The list generator may include a display list generator 1718, whichgenerates lists of contacts for presentation in the display region of aclient application. In some embodiments, the display list generator 1718includes a list generator for relevant contacts 1720, a list generatorfor relevant and active contacts 1722, a list generator for relevant andonline contacts 1724, and a list generator for meeting spots 1725. Thelist generator for relevant contacts 1720 generates a list of contactsthat are relevant, but not necessarily active or even online at all.“Relevant,” as used herein, means that the user has had interaction withthe contact. Interaction may include, but is not limited to, messageexchanges, scheduled meetings, transfers and/or sharing of files (suchas digital images), and explicitly adding a contact to the contact list.The list of relevant contacts may be selected in accordance with ascoring function that associates a score with each contact based on thequantity, type and age of the interactions between the contact and theuser. The list generator for relevant and active contacts 1722 generatesa list of contacts that are relevant and “active” (or relevant and“chatty”). The list generator for relevant and online contacts 1724generates a list of contacts that are relevant and not offline. In someembodiments, the list generator for meeting spots 1725 generates listsof other users associated with meeting spots that are also associatedwith a respective user for whom a list of contacts is being generated.For a given meeting spot, the list generator for meeting spots 1725 maygenerate a list based on predetermined criteria, such as the onlinestatus of the other users and/or matching preferences of the first user(e.g., age range, gender, sexual orientation, ethnicity, religion,languages spoken, body type, height, eye color, hair color, maritalstatus, education level, employment situation, profession, income level,attitude towards smoking and/or drinking, recent online activity,available communication media, and/or preferred way of usingcommunication media (e.g., “always start with a 10-minute conversationover instant messenger,” or “willing to go straight to video chat”)). Insome embodiments, the list generator may also include list generatormodules for generating lists of relevant contacts who are offline andgenerating lists of relevant contacts who have nonempty status messages.The lists are sent to a client device for display in the display regionof the client device.

The online communication application 1726 may include user records 1728,a message monitor 1730 for monitoring message traffic to and from themessaging server 118, and a messages repository 1730 for storingmessages sent and received by clients. The user records 1728 includestatus information and contact lists of users. In some embodiments, anonline communication application may include a calendar application, andinteractions between a user and other contacts may include appointmentsor other calendar events that reference the user's contacts.

The contact status manager 1734 includes a contact status monitor 1606,a contact status collector 1608, and a contact status sender 1740. Thecontact status monitor 1606 receives and processes messages announcingstatus changes and updates status of users. The contact status collector1608 gathers status information for contacts in a user's contact listfrom other messaging servers. The contact status sender 1740 sends thestatus information of contacts in a user's contact list to the clientassociated with the user.

Each of the above identified elements may be stored in one or more ofthe previously mentioned memory devices, and corresponds to a set ofinstructions for performing a function described above. The aboveidentified modules or programs (i.e., sets of instructions) need not beimplemented as separate software programs, procedures or modules, andthus various subsets of these modules may be combined or otherwisere-arranged in various embodiments. In some embodiments, memory 1704 maystore a subset of the modules and data structures identified above.Furthermore, memory 1704 may store additional modules and datastructures not described above.

Although FIG. 17 shows a “messaging server,” FIG. 17 is intended more asfunctional description of the various features which may be present in aset of servers than as a structural schematic of the embodimentsdescribed herein. In practice, and as recognized by those of ordinaryskill in the art, items shown separately could be combined and someitems could be separated. For example, some items shown separately inFIG. 17 could be implemented on single servers and single items could beimplemented by one or more servers. The actual number of servers used toimplement a messaging server and how features are allocated among themwill vary from one implementation to another, and may depend in part onthe amount of data traffic that the system must handle during peak usageperiods as well as during average usage periods.

FIGS. 18A-18C are block diagrams illustrating data structures residingin a messaging server in accordance with embodiments of the invention.The messaging server stores one or more user records in a data structure1800, as shown in FIG. 18A. Each user is associated with a unique userID 1802. In some embodiments, the user ID is a number. In some otherembodiments, the user ID is a string of characters. The string ofcharacters may represent, for example, a username, a username and ahost/domain name, or an email address.

Each user ID is associated with a user record 1806 by a map or index1804. The messaging server includes user records for users assigned tothe messaging server, such as user record 1808. The messaging server mayalso include user records, such as user record 1810, for users notassigned to the messaging server but which are in the contact lists ofusers that are assigned to the messaging server. For the user record1808 of a user that is assigned to the messaging server, the messagingserver stores that user's status information 1812 and contact list 1814.For the user record 1810 of a user who is not assigned to the messagingserver, the messaging server stores that user's status information 1816.That user's contact list is stored at the messaging server to which thatuser is assigned.

An exemplary contact list 1814 is illustrated in FIG. 18B. It is notedthat the contact list 1814 of a user record 108 in a messaging servermay have a substantial amount of information that is also found in thecontact list 512 of a user record 240 (FIG. 5) stored in ameeting-spot-based networking server 102. In some embodiments, thecontact lists 1814 and 512 of a respective user need not be identical,while in other embodiments, the contact lists 1814 and 512 of arespective user are synchronized and therefore have the sameinformation.

The exemplary contact list 1814, shown in FIG. 18B, includes a pluralityof contact records 1824. The contact list may also include the user ID1822 of the user, to identify the user with which the contact list isassociated. The contact list may also include the meeting spot IDs 1826of meeting spots associated with the user, to identify the meeting spotswith which the contact list is associated. In some embodiments, contactinformation 1824 for users associated with a meeting spot in the contactlist 1826 is included in the contact list 1814 (e.g., contact x formeeting spot 1 and contact z for meeting spot n in FIG. 18B). In someembodiments, meeting spot IDs 1826 serve as links to meeting spotrecords 228 in server 102 and the meeting spot records, in turn, includelinks to the contact information of users associated with the meetingspot (e.g., user IDs in field 418).

An exemplary contact record 1824 is illustrated in FIG. 18C. The contactrecord 1824 includes the user ID 1832 of the contact, a name of thecontact 1834, an optional score 1836 sometimes called the long termscore, an optional short term score 1838, an email address 1840, and aphone number 1842. The contact record may also have home contactinformation 1844 and work contact information 1850. The home contactinformation may include a home email address 1846 and a home phonenumber 1848. Similarly, the work contact information may include a workemail address 1852 and a work phone number 1854. It should beappreciated, however, that additional or alternative informationregarding the contact may be included in the contact record.

In some embodiments, the long term score 1836 is used in the generationof contact lists for presentation to a respective user. The long termscore 1836 may be determined based on many factors. The factors mayinclude, but is not limited to, an interaction history (e.g., one ormore of the following: message (email and/or IM) exchanges, filetransfers or sharing, calendar events) between the user and the contact.In some embodiments, the factors may further include degrees ofseparation between contacts and/or profile matching. The long term scoremeasures the degree of relevance of a contact to the user over aprolonged period of time, with a higher score indicating higherrelevance. In some embodiments, the long term score is decayed by apredefined percentage (e.g., 10%) at predefined intervals, such asmonthly or weekly.

In some embodiments, only one contact interaction score 1836 is used forgenerating contact lists for presentation to the user. However, in someother embodiments, both the long term score 1836 and the short termscore 1838 are used in the generation of contact lists for presentation.The short term score 1838 is a score based on short-term messageactivity from the user to the contact. The short term score is, in someembodiments, a running tally of messages sent by the user to thecontact. Thus, a message sent by the user to the contact results in anincrement of 1 of the short term score. Some special messages may resultin an increment of more than 1 to the short term score. In someembodiments, the running tally counts only IM messages and specialmessages. The short term score measures the degree of relevance of acontact to the user over a short period of time up to the presentmoment. In some embodiments, the short term score is decayed by apredefined percentage (e.g., 10%) each day. In other embodiments, theshort term score 1838 may be based a broader spectrum of interactionsbetween the user and contact, including messages received and sent, andcalendar events. In some embodiments, the short term score may be basedon messages to the contact; or interactions between the user andcontact, in a predefined time window, such as a week; or a predefinednumber (e.g., a number between 2 and 15) of days; or may be based on thetime of the last interaction with the contact rather than an accumulatedscore over time.

FIG. 19 is a flowchart representing a method, performed by server 102(e.g., with mapping engine 220) and client 104-1, of making anintroduction via meeting-spot-related online communications inaccordance with some embodiments. It will be appreciated by those ofordinary skill in the art that one or more of the acts described may beperformed by hardware, software, or a combination thereof, as may beembodied in one or more computing systems. In some embodiments, portionsof the processes described here as being performed by server 102 can beperformed instead by client 104-1 or by messaging server(s) 118. FIG. 19is described further below.

FIGS. 20A and 20B are schematic screen shots of exemplary graphical userinterfaces 2000A and 2000B for clients associated with a first user anda third user, respectively, for making a meeting-spot-relatedintroduction in accordance with some embodiments.

Graphical user interface 2000A on a client device associated with afirst user (e.g., on client 104-1) includes: an identifier for a meetingspot (e.g., 1304-5) and/or an icon for a meeting spot (e.g., 934-948);information about a plurality of other users 932 that are associatedwith the meeting spot, including information about a second user 2002associated with the meeting spot; and information about a third user2004. In some embodiments, user interface 2000A includes online statusinformation 1320 about the other users.

In some embodiments, the identifier 1304 is a name or logo for themeeting spot.

The third user is associated with the first user and is also associatedwith the second user. In some embodiments, the third user is associatedwith the first user by a reference to the third user in a record for thefirst user (e.g., the third user may be in the contact list 512 in theuser database record 240 for the first user). Similarly, in someembodiments, the third user is associated with the second user by areference to the third user in a record for the second user (e.g., thethird user may be in the contact list 512 in the user database record240 for the second user).

In response to receiving a selection of the second user from the firstuser (e.g., by detecting a click or hover by cursor 962 on theinformation for the second user 2002), the information about the thirduser 2004 is displayed.

In response to receiving from the first user a request to communicatewith the third user (e.g., by detecting a click by cursor 962 on the“Get introduced” link in the information for the third user 2004), acommunication is sent to a client device associated with the third userand the client device associated with the first user participates in anonline communication with the client device associated with the thirduser and a client device associated with the second user.

The graphical user interface 2000A may contain a subset of the featuresor items shown in FIG. 20A. Furthermore, in some embodiments, thegraphical user interface 2000A may include other features or items notshown in FIG. 20A.

Graphical user interface 2000B on a client device associated with athird user (e.g., on client 104-3) includes: an automatically generatedonline communication 2006 from a first user with a request 2008 tointroduce the first user to a second user; a first icon (e.g., Yes icon2010) that when activated by the third user initiates an onlinecommunication amongst the first user, the second user, and the thirduser; and a second icon (e.g., No icon 2012) that when activated by thethird user declines the request by the first user for the third user toinitiate an online communication amongst the first user, the seconduser, and the third user.

The graphical user interface 2000B may contain a subset of the featuresor items shown in FIG. 20B. Furthermore, in some embodiments, thegraphical user interface 2000B may include other features or items notshown in FIG. 20B.

Referring to FIG. 19, server 102 associates (1902) a first user with ameeting spot. As described above, in some embodiments, the first user isassociated with the meeting spot by a reference to the meeting spot in arecord for the first user. A meeting spot ID 402 that corresponds to themeeting spot may be included in the first user's record 240, e.g., inthe first user's entered meeting spots 504 and/or the first user'stagged meeting spots 506. In some embodiments, the reference to themeeting spot is added to the record for the first user when the firstuser activates an icon (e.g., one of icons 934-948) or an identifier1304 corresponding to the meeting spot. In some embodiments, the icon oridentifier corresponding to the meeting spot is displayed on a digitalmap (e.g., 918). In some embodiments, the icon or identifiercorresponding to the meeting spot is displayed in a contact list (e.g.,1304-5, FIG. 20A).

Server 102 identifies (1904) a plurality of other users (i.e., usersother than the first user) that are also associated with the meetingspot. As described above, in some embodiments, the plurality of otherusers are identified by respective identifiers for the meeting spot 402in respective records 240 for the plurality of other users. For example,the meeting spot ID 402 may be included in the respective records 240for the plurality of other users in the entered meeting spots 504 and/orthe tagged meeting spots 506. In some embodiments, the plurality ofother users are identified via the user IDs listed in field 418 of themeeting spot record 228.

Server 102 sends (1906) information about at least some of the pluralityof other users to a client device associated with the first user (e.g.,client 104-1, FIG. 1). This information may include online statusinformation 1320 about the other users for whom information is sent tothe client.

The client device associated with a first user (e.g., client 104-1,FIG. 1) receives (1908) from server 102 information about a plurality ofother users associated with a meeting spot. In some embodiments, thefirst user is also associated with the meeting spot. As described above,client device 104-1 may be permanently associated with the first user(e.g., by a telephone number or IP address) or the client device 104-1may be intermittently associated with the first user (e.g., by the userlogging in and out of a communications application (e.g., 314, 316, or318) on the client device 104-1).

Client 104-1 displays (1910) an icon (e.g., one of icons 934-948) and/oridentifier for the meeting spot (e.g., 1304-5) and at least some of theinformation for the plurality of other users associated with the meetingspot (e.g., 932-4, 932-5, 2002, 932-7, and 932-8, FIG. 20A). In someembodiments, the icon and/or identifier for the meeting spot isdisplayed on a digital map (e.g., 918, FIG. 20A). In some embodiments,the icon and/or identifier for the meeting spot is displayed in acontact list (e.g., 1306-5, FIG. 20A). In some embodiments, theinformation displayed for the plurality of other users includes onlinestatus information 1320 for those other users.

Client 104-1 receives (1912) from the first user a selection of a seconduser in the plurality of other users. In some embodiments, receiving theselection of the second user from the first user comprises detectingactivation of a link or icon corresponding to the second user (e.g., ahover or click by cursor 962 on the information about the second user2002, FIG. 20A).

In some embodiments, client 104-1 sends (1914) information thatcorresponds to the selected second user to server 102.

Server 102 receives (1916) information that corresponds to the seconduser associated with the meeting spot from the client device associatedwith the first user.

Server 102 identifies (1918) a third user that is associated with thefirst user and is also associated with the second user. In someembodiments, identifying the third user comprises identifying a thirduser that is in a contact list of the first user and is also in acontact list of the second user. In some embodiments, if there aremultiple users (who may be called mutual contacts) who are associatedwith both the first user and the second user, the third user isdetermined by the server in accordance with a metric that is based, atleast in part, on the amount of communication between the second userand each of the mutual contacts. Alternately, or in addition, the thirduser may be determined by the server in accordance with a metric that isbased, at least in part, on the amount of communication between thefirst user and each of the mutual contacts. Alternately, or in addition,the criteria used for determining the third user may favor users who areassociated with a meeting spot that is also associated with both thefirst and second users. In some embodiments, more than one third user isdetermined. For example, the top N mutual contacts, where N is aninteger (e.g., 1, 2, or 3), are determined and sent to the client 104-1,thereby giving the first user a choice of third users to make theintroduction to the second user. Selection of a third user(s) inaccordance with the aforementioned metric(s) or criteria may also beapplicable to operations 2106 and/or 2126, described below.

In some embodiments, server 102 or 118 identifies (1920) an onlinestatus of the third user, as described above.

Server 102 sends (1922) information about the third user to the clientdevice 104-1 associated with the first user. In some embodiments, theinformation about the third user includes online status informationabout the third user 2003.

Client 104-1 receives (1924) from server 102 information about the thirduser.

Client 104-1 displays (1926) at least some of the information about thethird user 2004.

Client 104-1 receives (1928) from the first user a request tocommunicate with the third user. In some embodiments, receiving from thefirst user a request to communicate with the third user comprisesdetecting activation of a link in the information about the third userthat initiates communication to a client associated with the third user(e.g., detecting a click on the “Get introduced” link in FIG. 20A).

Client 104-1 sends (1930) a communication to a client device 104-3associated with the third user. In some embodiments, the communicationto a client associated with the third user is an online communication ifthe third user is online. In some embodiments, the communication to aclient associated with the third user is an email message if the thirduser is offline. In some embodiments, the communication 2006 that issent to the client device associated with the third user includes arequest 2008 for the third user to introduce the first user to thesecond user. In some embodiments, the request is generated without humanintervention (e.g., a standard message asking the third user to contactthe second user to make an introduction or asking the third user toinitiate an online communication among the first user, second user, andthird user).

Client 104-1 participates (1932) in an online communication with theclient device 104-3 associated with the third user and a client device104-2 associated with the second user.

FIG. 21 is a flowchart representing a method, performed by server 102(e.g., with mapping engine 220) and client 104-1, of making anintroduction via meeting-spot-related online communications inaccordance with some embodiments. It will be appreciated by those ofordinary skill in the art that one or more of the acts described may beperformed by hardware, software, or a combination thereof, as may beembodied in one or more computing systems. In some embodiments, portionsof the processes described here as being performed by server 102 can beperformed instead by client 104 or by messaging server(s) 118.

Server 102 associates (2102) a first user with a meeting spot. Asdescribed above, in some embodiments, the first user is associated withthe meeting spot by a reference to the meeting spot in a record for thefirst user. A meeting spot ID 402 that corresponds to the meeting spotmay be included in the first user's record 240, e.g., in the firstuser's entered meeting spots 504 and/or the first user's tagged meetingspots 506. In some embodiments, the reference to the meeting spot isadded to the record for the first user when the first user activates anicon (e.g., one of icons 934-948) or an identifier 1304 corresponding tothe meeting spot. In some embodiments, the icon or identifiercorresponding to the meeting spot is displayed on a digital map (e.g.,918). In some embodiments, the icon or identifier corresponding to themeeting spot is displayed in a contact list (e.g., 1304-5, FIG. 20A).

Server 102 identifies (2104) a plurality of other users (i.e., usersother than the first user) that are also associated with the meetingspot. As described above, in some embodiments, the plurality of otherusers are identified by respective identifiers for the meeting spot 402in respective records 240 for the plurality of other users. For example,the meeting spot ID 402 may be included in the respective records 240for the plurality of other users in the entered meeting spots 504 and/orthe tagged meeting spots 506. In some embodiments, the plurality ofother users are identified via the user IDs listed in field 418 of themeeting spot record 228.

Server 102 sends (2106) information about at least some of the pluralityof other users to a client device associated with the first user (e.g.,client 104-1, FIG. 1). The sent information includes, for a respectiveother user, information about a respective third user that is associatedwith both the respective other user and the first user (e.g., a thirduser that is in both a contact list for the respective other user and acontact list for the first user). In some embodiments, the informationabout the other users includes online status information about the otherusers.

The client device associated with a first user (e.g., client 104-1,FIG. 1) receives (2108) from server 102 information about a plurality ofother users associated with a meeting spot. In some embodiments, thefirst user is also associated with the meeting spot. As described above,client device 104-1 may be permanently associated with the first user(e.g., by a telephone number or IP address) or the client device 104-1may be intermittently associated with the first user (e.g., by the userlogging in and out of a communications application (e.g., 314, 316, or318) on the client device 104-1).

Client 104-1 displays (2110) an icon (e.g., one of icons 934-948) and/oridentifier for the meeting spot (e.g., 1304-5) and at least some of theinformation for the plurality of other users associated with the meetingspot (e.g., 932-4, 932-5, 2002, 932-7, and 932-8, FIG. 20A). In someembodiments, the icon and/or identifier for the meeting spot isdisplayed on a digital map (e.g., 918, FIG. 20A). In some embodiments,the icon and/or identifier for the meeting spot is displayed in acontact list (e.g., 1306-5, FIG. 20A).

Client 104-1 receives (2112) from the first user a selection of a seconduser in the plurality of other users. In some embodiments, receiving theselection of the second user from the first user comprises detectingactivation of a link or icon corresponding to the second user (e.g., ahover or click by cursor 962 on the information about the second user2002, FIG. 20A).

Client 104-1 displays (2126) information about a third user 2004. Thethird user is associated with the first user and is also associated withthe second user (e.g., the third user is in both a contact list for thefirst user and a contact list for the second user).

Client 104-1 receives (2128) from the first user a request tocommunicate with the third user. In some embodiments, receiving from thefirst user a request to communicate with the third user comprisesdetecting activation of a link in the information about the third userthat initiates communication to a client associated with the third user(e.g., detecting a click on the “Get introduced” link in FIG. 20A).

Client 104-1 sends (2130) a communication to a client device 104-3associated with the third user. In some embodiments, the communicationto a client associated with the third user is an online communication ifthe third user is online. In some embodiments, the communication to aclient associated with the third user is an email message if the thirduser is offline. In some embodiments, the communication 2006 that issent to the client device associated with the third user includes arequest 2008 for the third user to introduce the first user to thesecond user. In some embodiments, the request is generated without humanintervention (e.g., a standard message asking the third user to contactthe second user to make an introduction or asking the third user toinitiate an online communication among the first user, second user, andthird user).

Client 104-1 participates (2132) in an online communication with theclient device 104-3 associated with the third user and a client device104-2 associated with the second user.

FIG. 22 is a flowchart representing a method performed by a clientdevice associated with a third user (e.g., client 104-3, FIG. 1) ofmaking an introduction via meeting-spot-related online communications inaccordance with some embodiments. It will be appreciated by those ofordinary skill in the art that one or more of the acts described may beperformed by hardware, software, or a combination thereof, as may beembodied in one or more computing systems.

Client 104-3 receives (2202) an automatically generated onlinecommunication 2006 from a first user with a request 2008 to introducethe first user to a second user (e.g., an online communication sent1930/2130 by client 104-1). The third user is associated with both thefirst user and the second user (e.g., the third user is in both acontact list for the first user and a contact list for the second user).The first user and the second user are both associated with a meetingspot. As described above, in some embodiments, the first user isassociated with the meeting spot by a reference to the meeting spot in arecord for the first user in server 102. A meeting spot ID 402 thatcorresponds to the meeting spot may be included in the first user'srecord 240, e.g., in the first user's entered meeting spots 504 and/orthe first user's tagged meeting spots 506. In some embodiments, thereference to the meeting spot is added to the record for the first userwhen the first user activates an icon corresponding to the meeting spot.Similarly, the second user may be associated with the meeting spot by areference to the meeting spot in a record for the second user in server102. In some embodiments, the third user is also associated with themeeting spot (e.g., by a reference to the meeting spot in a record forthe third user in server 102). In other embodiments, the third user isnot associated with the meeting spot.

Client 104-3 initiates (2204) an online communication amongst the firstuser, the second user, and the third user. For example, upon detectingactivation of the Yes icon 2010, client 104-3 initiates an online chatsession, audio chat, VoIP conference, or video chat.

The foregoing description, for purpose of explanation, has beendescribed with reference to specific embodiments. However, theillustrative discussions above are not intended to be exhaustive or tolimit the invention to the precise forms disclosed. Many modificationsand variations are possible in view of the above teachings. Theembodiments were chosen and described in order to best explain theprinciples of the invention and its practical applications, to therebyenable others skilled in the art to best utilize the invention andvarious embodiments with various modifications as are suited to theparticular use contemplated.

What is claimed is:
 1. A computer-implemented method, comprising: at aserver computer, comprising a processor and memory: associating a firstuser, who is currently online and active, with a meeting spot;identifying a plurality of other users, who are currently online andactive, that have currently selected the meeting spot; sendinginformation about at least some of the plurality of other users to aclient device associated with the first user; receiving information thatcorresponds to a second user of the plurality of other users from theclient device associated with the first user; identifying a third userwho is online, active, associated with the first user and alsoassociated with the second user; and sending information about the thirduser to the client device associated with the first user, wherein theclient device associated with the first user: displays at least some ofthe information about the third user; receives from the first user arequest to communicate with the third user; sends a communication to aclient device associated with the third user; and participates in anonline communication with the client device associated with the thirduser and a client device associated with the second user.
 2. The methodof claim 1, wherein identifying the third user comprises identifying athird user that is in a contact list of the first user and is also in acontact list of the second user.
 3. The method of claim 1, includingidentifying an online status of the third user.
 4. The method of claim1, wherein the information about the third user includes online statusinformation about the third user.
 5. A computer-implemented method,comprising: at a server computer, comprising a processor and memory:associating a first user, who is currently online and active, with ameeting spot; identifying a plurality of other users, who are currentlyonline and active, that have currently selected the meeting spot; andsending information about at least some of the plurality of other usersto a client device associated with the first user, wherein the sentinformation includes, for a respective other user, information about arespective third user, who is currently online, active, and associatedwith both the respective other user and the first user; wherein theclient device associated with the first user: receives from the firstuser a selection of a second user in the plurality of other users;displays information about the third user who is associated with thefirst user and is also associated with the second user; receives fromthe first user a request to communicate with the third user; sends acommunication to a client device associated with the third user; andparticipates in an online communication with the client deviceassociated with the third user and a client device associated with thesecond user.
 6. The method of claim 5, wherein the first user isassociated with the meeting spot by a reference to the meeting spot in arecord for the first user.
 7. The method of claim 6, wherein thereference to the meeting spot is added to the record for the first userwhen the first user activates an icon corresponding to the meeting spot.8. The method of claim 7, wherein the icon corresponding to the meetingspot is displayed on a digital geographic map.
 9. The method of claim 7,wherein the icon corresponding to the meeting spot is displayed in acontact list.
 10. The method of claim 5, wherein the information aboutthe other users includes online status information about the otherusers.
 11. A computer-implemented method, comprising: at a client deviceassociated with a first user who is currently online and active, theclient device comprising a processor and memory: receiving from a servercomputer information about a plurality of other users, who are currentlyonline and active, that have currently selected the meeting spot;displaying an identifier for the meeting spot and at least some of theinformation for the plurality of other users associated with the meetingspot; receiving from the first user a selection of a second user in theplurality of other users; displaying information about a third user whois online, active, associated with the first user and also associatedwith the second user; receiving from the first user a request tocommunicate with the third user; sending a communication to a clientdevice associated with the third user; and participating in an onlinecommunication with the client device associated with the third user anda client device associated with the second user.
 12. The method of claim11, wherein the first user is associated with the meeting spot.
 13. Themethod of claim 11, wherein the identifier for the meeting spot isdisplayed on a digital geographic map.
 14. The method of claim 11,wherein the identifier for the meeting spot is displayed in a contactlist.
 15. The method of claim 11, wherein receiving the selection of thesecond user from the first user comprises detecting activation of a linkor icon corresponding to the second user.
 16. The method of claim 11,including: sending information that corresponds to the selected seconduser to a server computer; and receiving from the server computerinformation about the third user.
 17. The method of claim 11, whereinreceiving from the first user a request to communicate with the thirduser comprises detecting activation of a link in the information aboutthe third user that initiates communication to a client associated withthe third user.
 18. The method of claim 17, wherein the communication toa client associated with the third user is an online communication. 19.The method of claim 11, wherein the communication that is sent to theclient device associated with the third user includes a request for thethird user to introduce the first user to the second user.
 20. Themethod of claim 19, wherein the request is generated without humanintervention.
 21. A graphical user interface on a client deviceassociated with a first user who is currently online and active, theclient device comprising a processor and memory, the graphical userinterface comprising: an icon and/or an identifier for a meeting spot;information about a plurality of other users, who are currently onlineand active, that have currently selected the meeting spot, includinginformation about a second user associated with the meeting spot; andinformation about a third user who is currently online and active;wherein: the third user is associated with the first user and is alsoassociated with the second user; in response to receiving a selection ofthe second user from the first user, the information about the thirduser is displayed; and in response to receiving from the first user arequest to communicate with the third user, a communication is sent to aclient device associated with the third user and the client deviceassociated with the first user participates in an online communicationwith the client device associated with the third user and a clientdevice associated with the second user.
 22. The graphical user interfaceof claim 21, wherein the identifier is a name or logo for the meetingspot.
 23. A server, comprising: one or more processors; memory; and oneor more programs, wherein the programs are stored in the memory andconfigured to be executed by the one or more processors, the one or moreprograms including: instructions for associating a first user, who iscurrently online and active, with a meeting spot; instructions foridentifying a plurality of other users, who are currently online andactive, that have currently selected the meeting spot; and instructionsfor sending information about at least some of the plurality of otherusers to a client device associated with the first user, wherein thesent information includes, for a respective other user, informationabout a respective third user, who is currently online, active, andassociated with both the respective other user and the first user;wherein the client device associated with the first user: receives fromthe first user a selection of a second user in the plurality of otherusers; displays information about the third user who is associated withthe first user and is also associated with the second user; receivesfrom the first user a request to communicate with the third user; sendsa communication to a client device associated with the third user; andparticipates in an online communication with the client deviceassociated with the third user and a client device associated with thesecond user.
 24. A client device associated with a first user who iscurrently online and active, comprising: one or more processors; memory;and a program, wherein the program is stored in the memory andconfigured to be executed by the one or more processors, the programincluding: instructions for receiving from a server computer informationabout a plurality of other users, who are currently online and active,that have currently selected a meeting spot; instructions for displayingan identifier for the meeting spot and at least some of the informationfor the plurality of other users associated with the meeting spot;instructions for receiving from the first user a selection of a seconduser in the plurality of other users; instructions for displayinginformation about a third user, who is currently online, active,associated with the first user, and also associated with the seconduser; instructions for receiving from the first user a request tocommunicate with the third user; instructions for sending acommunication to a client device associated with the third user; andinstructions for participating in an online communication with theclient device associated with the third user and a client deviceassociated with the second user.
 25. The client device of claim 24,wherein the instructions for identifying the third user compriseinstructions for identifying a third user that is in a contact list ofthe first user and is also in a contact list of the second user.
 26. Theclient device of claim 24, the program further including instructionsfor identifying an online status of the third user.
 27. The clientdevice of claim 24, wherein the information about the third userincludes online status information about the third user.